package KiemTra;

import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class Bai01 extends JFrame{
	
	
	public Bai01(){
		super("Giải phương trình bật 2");
		this.setVisible(true);
		this.setSize(300, 250);		
		
		final JTextField jtf_A = new JTextField(20);
		final JTextField jtf_B = new JTextField(20);
		final JTextField jtf_C = new JTextField(20);

		JLabel 	jlb_A = new JLabel("Hệ số a"),
				jlb_B = new JLabel("Hệ số b"),
				jlb_C = new JLabel("Hệ số c");
		final JLabel jlb_Nghiem = new JLabel("");
		
		JButton jbt_Tinh = new JButton("Tính"),
				jbt_Thoat = new JButton("Thoát");
				
		
		
		JPanel p = new JPanel();
		p.setLayout(new GridLayout(6,1));
		
		JPanel ptd = new JPanel();
		ptd.add(new JLabel("Giải PT bậc 2: ax^2 + bx + c = 0"));
		ptd.setForeground(Color.BLUE);
		p.add(ptd);
		
		JPanel p1 = new JPanel();
		p1.setLayout(new GridLayout(1,3));
		p1.add(jlb_A);p1.add(jlb_B);p1.add(jlb_C);
		p.add(p1);
		
		JPanel p2 = new JPanel();
		p2.setLayout(new GridLayout(1,3));
		p2.add(jtf_A);p2.add(jtf_B);p2.add(jtf_C);
		p.add(p2);
		
		JPanel p3 = new JPanel();
		p3.add(new JLabel("Kết quả:"));
		p.add(p3);
		
		JPanel p4 = new JPanel();
		p4.add(jlb_Nghiem);
		p.add(p4);
		
		JPanel p5 = new JPanel();
		p5.add(jbt_Tinh);p5.add(jbt_Thoat);
		p.add(p5);
		
		this.add(p);
		
		jbt_Tinh.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				float a,b,c;
				try{
					a = Float.parseFloat(jtf_A.getText());
					b = Float.parseFloat(jtf_B.getText());
					c = Float.parseFloat(jtf_C.getText());
					
					if(a == 0){
						jlb_Nghiem.setText("Đây không phải phương trình bật 2");
					}
					else{
						double deta = b * b - 4 * a * c;
						if(deta == 0){
							float x = -b / 2 * a;
							jlb_Nghiem.setText("X = " + x);
						}else if(deta > 0){
							float x1 = (float)(-b + Math.sqrt(deta)) / 2 * a;
							float x2 = (float)(-b - Math.sqrt(deta)) / 2 * a;
							jlb_Nghiem.setText("X1 = " + x1 + ", X2 = " + x2);
						}else{
							jlb_Nghiem.setText("Phương trình vô nghiệm!");
						}
					}						
				}
				catch (Exception ex) {
					jlb_Nghiem.setText("Nhập liệu không đúng!");
				}
				
			}
		});
		
		jbt_Thoat.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				
			}
		});		
	}
	
	public static void main(String[] args) {
		Bai01 frm = new Bai01();		

	}

}
